Storage virtualization is a technique of providing virtual storage to applications in such a way that the virtual storage is backed by physical storage that is hidden from the applications. See, for example, Bono, et al. U.S. Pat. No. 7,631,155 issued Dec. 8, 2009, entitled “Thin provisioning of a file system and an iSCSI LUN through a common mechanism.” A storage virtualization appliance can dynamically allocate physical storage to a virtual storage volume when an application actually needs to store data in the virtual storage volume. In addition, the storage virtualization appliance can dynamically migrate or mirror application data between physical storage devices in a way that is hidden from the applications. For example, the EMC Corporation VPLEX METRO brand of storage virtualization appliance provides virtual storage backed by storage area network-based (SAN) block storage in order to allow the physical storage provided by traditional storage arrays to be virtualized, accessed, and managed across boundaries between data centers.
A virtual machine encapsulates an entire server or desktop computer environment so that multiple virtual machines can be hosted in a single network server in such a way that the environment of the network server is hidden from applications executed on the virtual machine. Typically this is done by installing a virtualization layer on the network server and then layering the virtual machines over the virtualization layer. The virtualization layer abstracts and allocates processor, memory, storage, and networking resources to each virtual machine. The virtualization layer also isolates the virtual machines from each other so that a crash or configuration error in one virtual machine does not affect the other virtual machines.
Each virtual machine, for example, is a software appliance encapsulated in a file in accordance with a standard Virtual Machine Disk Format (VMDK). In general, a software appliance is a full application stack containing an operating system, application software, and any configuration and data files required to operate the application software and the operating system. The encapsulation of a virtual machine in a file permits the virtual machine to be migrated from one network server to another in a file migration process. See, for example, John Hayden et al., U.S. Pat. No. 7,383,463 issued Jun. 3, 2008, entitled “Internet protocol based disaster recovery of a server.”
Cloud computing is Internet-based computing, whereby shared server resources, software, and information are provided to client devices on demand. The server resources, for example, include data storage, processing capabilities, and network bandwidth. The resources are often scalable and virtualized, so that details of resource provisioning are hidden from the cloud computing consumers, who no longer have need for expertise in, or control over, the technology that provides the shared server resources.
Cloud application platforms provide facilities for transitioning legacy applications to cloud computing infrastructures, and providing security, control and compliance over the applications and data in the cloud computing infrastructures. For example, the VMware Inc., VSPHERE brand of cloud application platform provides facilities for creating multi-tenant virtual datacenters that are decoupled from the underlying hardware and isolated from one another. The virtual datacenters are exposed to users through a Web-based portal and the users are provided with a catalog of Information Technology (IT) services that can be deployed within the virtual datacenter. Applications and data can be segmented into trusted zones and security policies can be implemented and monitored for IT compliance.
Private clouds emulate cloud computing on private networks by hosting virtual machines on servers in the private networks. The private clouds provide the benefits of sharing hardware costs for utility computing, the ability to recover from failure, and the ability to scale up or down depending upon demand. Private cloud users, however, still have to buy, build, and manage the private networks, and therefore the private cloud users do not achieve the public cloud benefits of lower up-front capital costs and less hands-on management of the IT infrastructure.